package thinkingInJava.OverRide;

import java.util.HashSet;
import java.util.Map;
import java.util.Set;

public class OverSet extends HashSet<String> {
	@Override
	public boolean remove(Object o){
		System.out.println("OverSet: remove: " + o);
		return false;
	}
	
	public boolean removeSuper(Object o){	// 这是我想到的一种方法
		return super.remove(o);
	}
	
	public static void main(){
		Set<String> set = new OverSet();
		set.add("123");
		set.remove("123"); // 这里调用的是OverSet.remove
		HashSet<String> hset = (HashSet<String>)set;
		hset.remove("123");// 这里调用的还是OverSet.remove
		// 有什么办法能用 set 只调用到父类 HashSet.remove,即不会输出 println 的 remove ?
		// 有没有语法支持上述功能的？
	}
}
